#include "sqldatabase.h"

sqliteDatabase::sqliteDatabase(const QString DBName)
{
    open(DBName);
}

sqliteDatabase::~sqliteDatabase()//析构函数
{

    delete pQuery;//释放掉查询对象
    QSqlDatabase::removeDatabase("QSQLITE");
    QSqlDatabase::removeDatabase("qt_sql_default_connection");
    // db.close();//关闭数据库
}

QSqlQuery * sqliteDatabase::exec(QString sql)
{
    if (pQuery->exec(sql)) {//执行外面传入的SQL语句，如果成功了就把查询对象返回去，否则返回一个NULL
        return pQuery;
    } else {
        qDebug() << "Failed to run sql:" << pQuery->lastError().text();
        return NULL;
    }
}

bool sqliteDatabase::open(const QString DBName)//打开数据库，并创建查询对象
{
    qDebug()<<"11111111111111111111111";
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");//链接数据库
    db.setDatabaseName(DBName); // 数据库文件名，可以是相对路径或绝对路径
    if (db.open()) {
        pQuery = new QSqlQuery(db);//构建一个查询对象，把数据库对象传给它，该对象可以用来执行数据库操作或者查询数据库内容
        return true;
    } else {
        qDebug() << "Failed to connect to SQLite database:" << db.lastError().text();
        return false;
    }
}

bool sqliteDatabase::close()
{
    QSqlDatabase::removeDatabase("qt_sql_default_connection");
    delete pQuery;//释放掉查询对象
    QSqlDatabase::removeDatabase("QSQLITE");

    return true;
}
